package com.itheima.demo04;

public class InsertDemo01 {
    public static void main(String[] args) {
        //插入排序
        //先找出有序的数据，再把无序的数据插入到有数的数据中
        //0~N 表示有序的数据，N+1 表示无序的数据
        //1.定义数据
        int[] arr = {3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};

        //2.找出有序的索引
        int startIndex = -1;

        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > arr[i + 1]) {
                startIndex = i;
                break;
            }
        }
        //证明数组中有序部分的索引是到 startIndex
        //System.out.println(startIndex);//1 这里是1索引

        //3.证明数组中无序的索引是从 startIndex + 1 开始
        //下面就循环数组中无序索引的值，跟有序的值比较，找到对应的位置插入
        for (int i = startIndex + 1; i < arr.length; i++) {
//            System.out.println(arr[i]);
            //定义j记录i的值
            int j = i;
            //while循环
            while (j > 0 && arr[j] < arr[j - 1]) {
                int temp = arr[j];
                arr[j] = arr[j - 1];
                arr[j - 1] = temp;
                j--;
            }
        }

        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }


    }
}
